package com.indusfo.spc.service;

import com.indusfo.spc.pojo.Role;
import com.indusfo.spc.pojo.User;
import com.indusfo.spc.vo.JSONObject;

import java.util.List;

/**
 * 用户信息业务层接口
 * 
 * @author xiet 2018年11月23日 下午2:41:42
 */
public interface UserService {

	/**
	 * 	删除用户信息（1启用，2删除，3停用）
	 * 
	 * @param lUserIdS
	 * @param lDataState
	 * @return
	 */
	JSONObject deleteUser(Long[] lUserIdS, Integer lDataState);

	/**
	 * 	查询用户信息
	 * 
	 * @param user
	 * @return
	 */
	JSONObject queryUser(User user);

	/**
	 * 	查询用户信息  部门 用户表
	 *
	 * @param user
	 * @return
	 */
	JSONObject queryUserDep(User user);

	/**
	 * 	新增用户信息
	 * @param user
	 * @return
	 */
	JSONObject insertUser(User user);
	
	/**
	 * 	修改用户信息
	 * @param user
	 * @return
	 */



	JSONObject updateUser(User user);
	/**
	 * 通过用户名查询
	 * @param user
	 * @return
	 */
	List<User> queryU(User user);

    List<User> queryUserByRoleId(Role role);

	Integer getCountsByRoleId(Role role);

	/**
	 * @Method loginUser
	 * @Author 熊冰
	 * @Version  1.0
	 * @Description
	 * @param user
	 * @Return com.indusfo.spc.vo.JSONObject
	 * @Exception
	 * @Date 2019/8/24 15:03
	 * 登陆
	 */
	JSONObject loginUser(User user);
	JSONObject treeMenu(Integer lUserId);
	JSONObject arrayMenu(Integer lUserId);
	JSONObject listMenu(Integer lUserId);

	/**
	 * @Method treeRole
	 * @Author 熊冰
	 * @Version  1.0
	 * @Description
	 * @param lRoleId
	 * @Return com.indusfo.spc.vo.JSONObject
	 * @Exception  角色  权限树
	 * @Date 2019/9/2 8:57
	 */
    JSONObject treeRole(Integer lRoleId);
	/**
	 * @Method arrayRole
	 * @Author 熊冰
	 * @Version  1.0
	 * @Description
	 * @param lRoleId
	 * @Return com.indusfo.spc.vo.JSONObject
	 * @Exception 角色  权限数组
	 * @Date 2019/9/2 8:58
	 */
	JSONObject arrayRole(Integer lRoleId);
	/**
	 * @Method listRole
	 * @Author 熊冰
	 * @Version  1.0
	 * @Description
	 * @param lRoleId
	 * @Return com.indusfo.spc.vo.JSONObject
	 * @Exception 角色  权限列表
	 * @Date 2019/9/2 8:58
	 */
	JSONObject listRole(Integer lRoleId);

	/**
	 * @author: louk
	 * @Description:对于excel导入的一个检查
	 * @date: 2019/10/20 20:53
	 *
	 */

	String checkNoRepeat(User user);
	/**
	 * @author: louk
	 * @Description: 用户批量新增
	 * @date: 2019/11/5 16:13
	 *
	 */
	JSONObject updateListUser(List<User> userList);

}
